import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.util.Scanner;

/**
 * 880 - Cantor Fractions
 * @author jjeske
 * Status: solved
 *
 */
public class Main {
	
	public static void main(String[] args){
		Main cantorFractions = new Main();
		cantorFractions.begin();
	}
/*
 * Sample Input
6

Sample Output
1/3
 */
/*
 * 1
3
14
7
10000000

Output

1/1
1/2
2/4
4/1
1629/2844

Derive a closed form formula from the number of elements in a triangle y=x(x+1)/2=f(x).
Consider f(x-1)+1 and find its inverse, x=[1+sqrt(1+8(y-1))]/2.

 */
	
/*
 * //Scan tokens from the file named "data.txt"
Scanner inFile = new Scanner("data.txt");
double d; char c; String s;
int tokenType;
tokenType = inFile.getToken();
switch (tokenType) {
    case Scanner.DOUBLE:
    System.out.println("Found a Double = "+ inFile.lexAsDouble());
    break;
    case Scanner.CHARACTER:
    System.out.println("Found a Character = "+ inFile.lexAsCharacter());
    break;
    case Scanner.WORD:
    System.out.println("Found a Word = "+ inFile.lexAsWord());
    break;
    case Scanner.EOF:
    System.out.println("Found end of file.");
} 	
 */
	
	private void begin() {
		//Scanner entrada = new Scanner(System.in);
		PrintStream saida = new PrintStream(System.out);
		long N;
		long numerador = 1;
		long divisor = 1;
		String entradao;
	
		//entrada.useDelimiter("\n");
		
    	BufferedReader	inReader;
        inReader = new BufferedReader(new InputStreamReader(System.in));
        String line;

        try {
            while((line = inReader.readLine())!= null) {
            		N = Long.parseLong(line); 
        			numerador = (long) Math.sqrt(2 * N);
        			divisor = numerador * (numerador + 1)/2;
        			if(divisor < N){
        				numerador++;
        				divisor = divisor + numerador;
        			}						
        			//saida
        			saida.printf("%d/%d\n", divisor - N + 1, numerador - (divisor - N));
             }             
              inReader.close();
            } catch (IOException e) {
                //System.err.println(e.getMessage());
            	System.exit(0);
            }
        
		
		
		
		
//		while(entrada.hasNext()){
//			N = entrada.nextInt();
//	
//			//resolve o problema
//			/* percorre uma matriz diagonalmente N vezes,
//			 * por fim coloca os iteradores como numerador e divisor
//			 */
//			/* acho que preciso pensar em uma formula fechada para evitar o time limite de O^2 */
//			/* derivada da formula de contagem de elementos do triangulo! */
//			
//			numerador = (long) Math.sqrt(2 * N);
//			divisor = numerador * (numerador + 1)/2;
//			if(divisor < N){
//				numerador++;
//				divisor = divisor + numerador;
//			}						
//			//saida
//			saida.printf("%d/%d\n", divisor - N + 1, numerador - (divisor - N));
//			//N = entrada.nextLong();
//			
//			if(!entrada.hasNext()){
//				break;
//			};
//
//		}
	}
	
	/*
	 * percorre todos os elementos de uma matriz diagonal N vezes
	 * vai dar TIME LIMIT !!
	 */
	private long diagonalOrder(long n){
		//
		return 0;
	}
}